<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>IfWinActive / IfWinNotActive</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="../css/default.css" rel="stylesheet" type="text/css">
</head>
<body>

<h1>IfWinActive / IfWinNotActive</h1>

<p>检查指定的窗口是否存在且当前是否活动 (在最前面).</p>

<pre class="Syntax">IfWinActive [, WinTitle, WinText,  ExcludeTitle, ExcludeText]
IfWinNotActive [, WinTitle, WinText, ExcludeTitle, ExcludeText]
<a href="WinGet.htm">UniqueID</a> := WinActive("WinTitle", "WinText", "ExcludeTitle", "ExcludeText")</pre>
<h3>参数</h3>
<table class="info">
  <tr> 
    <td width="15%">WinTitle</td>
    <td width="85%">目标窗口的标题或部分标题 (匹配行为由 <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a> 决定). 如果省略此参数和其他 3 个参数, 那么将使用 <a href="../LastFoundWindow.htm">上次找到的窗口</a>. 要使用窗口类, 请在此参数中指定 ahk_class ExactClassName (在 Window Spy 中所显示的). 要使用 <a href="Process.htm">进程标识符 (PID)</a>, 请指定 ahk_pid %VarContainingPID%. 要使用 <a href="GroupAdd.htm">窗口组</a>, 请指定 ahk_group GroupName. 要使用窗口的 <a href="WinGet.htm">唯一 ID 号</a>, 请指定 ahk_id %VarContainingID%. 通过指定 <a href="../LastFoundWindow.htm#multi">多个条件</a> 可以缩小搜索范围. 例如: <em>My File.txt ahk_class Notepad</em></td>
  </tr>
  <tr> 
    <td>WinText</td>
    <td>如果使用此参数, 那么它必须是目标窗口中单个文本元素的子字符串 (和内置的 Window Spy 工具显示的一样). 当 <a href="DetectHiddenText.htm">DetectHiddenText</a> 的设置为 ON 时, 那么会检测到隐藏文本元素.</td>
  </tr>
  <tr>
    <td>ExcludeTitle</td>
    <td>标题中含有此参数值的窗口将被排除. 注意: 由于向后兼容 <a href="../AutoIt2Users.htm">.aut 脚本</a>, 所以如果此参数准确匹配某个命令名, 那么它将被解释为命令. 要变通解决此问题, 请使用 <a href="../Functions.htm#WinActive">WinActive() 函数</a> 代替此命令.</td>
  </tr>
  <tr>
    <td>ExcludeText</td>
    <td>文本中含有此参数值的窗口将被排除.</td>
  </tr>
</table>

<h3>备注</h3>
<p>如果省略所有参数, 那么将使用 <a href="../LastFoundWindow.htm">上次找到的窗口</a>.</p>
<p>如果这些命令的其中一个确定了某个活动窗口为符合的匹配, 那么 <a href="../LastFoundWindow.htm">上次找到的窗口</a> 将更新为这个活动窗口. 换句话说, 如果 <em>IfWinActive</em> 匹配结果为 "true" 或 <em>IfWinNotActive</em> 匹配结果为 "false", 那么将更新 <a href="../LastFoundWindow.htm">上次找到的窗口</a>.</p>
<p>WinActive() 函数返回匹配指定条件的活动窗口的 <a href="WinGet.htm">唯一 ID (HWND)</a>. 如果不匹配, 则函数返回 0. 由于所有的非零数字被视为 "true", 所以每当 <em>WinTitle</em> 为活动时, <em>if WinActive("WinTitle")</em> 语句为 true.</p>
<p><a href="SetWinDelay.htm">SetWinDelay</a> 不适用于 IfWinExist/IfWinActive.</p>
<p>窗口标题和文本是区分大小写的. 只有在打开 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 设置时, 才会检测到隐藏窗口.</p>
<h3>相关</h3>
<p><a href="IfWinExist.htm">IfWinExist</a>, <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a>, <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a>, <a href="../LastFoundWindow.htm">上次找到的窗口</a>, <a href="WinActivate.htm">WinActivate</a>, <a href="WinWaitActive.htm">WinWaitActive</a>, <a href="WinWait.htm">WinWait</a>, <a href="WinWaitClose.htm">WinWaitClose</a>, <a href="_IfWinActive.htm">#IfWinActive/Exist</a></p>
<h3>示例</h3>
<pre class="NoIndent">IfWinActive, Untitled - Notepad
{
    WinMaximize  <em>; 最大化前面 IfWinActive 找到的记事本窗口.</em>
    Send, Some text.{Enter}
    return
}

if WinActive("ahk_class Notepad") or WinActive("ahk_class" . ClassName)  <em>; "ahk_class" 后不需要空格.</em>
    WinClose  <em>; 这里使用 <a href="../LastFoundWindow.htm">上次找到的窗口</a>.</em></pre>

</body>
</html>
